Command Pipeline এবং Object Passing গাইড ও নোট

Microsoft Technologies - মাইক্রোসফট পাওয়ারশেল (Powershell) - PowerShell বেসিক কমান্ড এবং কাজ (Basic Commands and Operations)
376

PowerShell-এর একটি অন্যতম শক্তিশালী বৈশিষ্ট্য হল Command Pipeline (কমান্ড পাইপলাইন), যা কমান্ডগুলোর মধ্যে ডেটা পাঠানোর একটি পদ্ধতি। এটি PowerShell-কে একটি শক্তিশালী স্ক্রিপ্টিং ভাষা এবং অটোমেশন টুল হিসেবে গড়ে তুলেছে। পাইপলাইনের মাধ্যমে এক কমান্ডের আউটপুট অন্য কমান্ডের ইনপুটে পাঠানো হয়, যার ফলে স্ক্রিপ্টগুলি খুবই কার্যকরী ও পরিষ্কার হয়ে ওঠে।

এই প্রক্রিয়ায় Object Passing বা অবজেক্ট পাসিংও গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ PowerShell টেক্সটের পরিবর্তে অবজেক্ট (objects) ব্যবহার করে কমান্ডগুলোর মধ্যে ডেটা আদান-প্রদান করে। নিচে PowerShell-এর Command Pipeline এবং Object Passing সম্পর্কে বিস্তারিত আলোচনা করা হল।


Command Pipeline (কমান্ড পাইপলাইন)

PowerShell-এর কমান্ড পাইপলাইন একটি শক্তিশালী বৈশিষ্ট্য যা বিভিন্ন কমান্ড একত্রিত করে একটি সিরিজ হিসেবে চালাতে সাহায্য করে। পাইপলাইন ব্যবহার করলে আপনি এক কমান্ডের আউটপুট অন্য কমান্ডের ইনপুট হিসেবে ব্যবহার করতে পারেন। এই কমান্ডগুলো একে অপরের সাথে সংযুক্ত থাকে, এবং ডেটা এক কমান্ড থেকে আরেক কমান্ডে পাঠানো হয়।

পাইপলাইন কীভাবে কাজ করে:

PowerShell-এর পাইপলাইন একটি | চিহ্নের মাধ্যমে কমান্ডগুলোকে সংযুক্ত করে। একটি কমান্ড তার আউটপুট পাইপলাইন হিসেবে পাঠায় এবং পরবর্তী কমান্ড এটি ইনপুট হিসেবে গ্রহণ করে। উদাহরণস্বরূপ:

Get-Process | Where-Object { $_.CPU -gt 100 }

এখানে, Get-Process কমান্ড সিস্টেমের সকল প্রসেসের তথ্য প্রদান করবে এবং তা Where-Object কমান্ডে পাঠানো হবে। Where-Object কমান্ড শুধুমাত্র সেই প্রসেসগুলিই ফিল্টার করবে, যার CPU ব্যবহারের পরিমাণ 100 এর বেশি।

পাইপলাইন ব্যবহার করার সুবিধা:

  • কমপ্যাক্ট এবং পরিষ্কার কোড: পাইপলাইন ব্যবহার করলে কমান্ডগুলিকে সহজে একত্রিত করা যায় এবং কোড আরও কমপ্যাক্ট ও পরিষ্কার হয়।
  • কার্যকরী স্ক্রিপ্ট: একাধিক কমান্ড সংযুক্ত করে দ্রুত এবং কার্যকরী স্ক্রিপ্ট তৈরি করা যায়।

Object Passing (অবজেক্ট পাসিং)

PowerShell-এ পাইপলাইনের মাধ্যমে সাধারণত অবজেক্ট (objects) পাস করা হয়, টেক্সট নয়। অর্থাৎ, PowerShell স্ক্রিপ্টে যখন একটি কমান্ড অন্য কমান্ডের মধ্যে ডেটা পাস করে, তখন এটি কেবলমাত্র টেক্সট স্ট্রিং নয়, বরং একটি অবজেক্ট পাঠায়।

অবজেক্ট এবং প্রপার্টি:

PowerShell-এ প্রতিটি আউটপুট আসলে একটি অবজেক্ট। যেমন, Get-Process কমান্ডটি একটি প্রক্রিয়ার অবজেক্ট রিটার্ন করে, যেখানে একে CPU, Name, Id, ইত্যাদি প্রপার্টি দিয়ে বর্ণনা করা হয়। তাই পাইপলাইনে অবজেক্ট পাস করার সময়, আমরা কেবল টেক্সটের পরিবর্তে সম্পূর্ণ অবজেক্টটি পাস করি, যাতে পরবর্তী কমান্ডে সেসব প্রপার্টি ব্যবহার করা যায়।

Get-Process | Select-Object Name, CPU

এখানে, Get-Process প্রত্যেক প্রসেসের অবজেক্ট প্রেরণ করছে, এবং Select-Object কমান্ডে আমরা সেই অবজেক্টের Name এবং CPU প্রপার্টি নির্বাচন করছি।

অবজেক্ট পাসিং এর সুবিধা:

  • অ্যাডভান্সড ম্যানিপুলেশন: অবজেক্ট পাসিংয়ে আপনি পুরো অবজেক্ট নিয়ে কাজ করতে পারেন, যেমন ডেটার প্রপার্টি অ্যাক্সেস, পরিবর্তন, ফিল্টারিং ইত্যাদি।
  • পারফরমেন্স: টেক্সটের পরিবর্তে অবজেক্ট পাস করার ফলে, পুরো ডেটাকে বাচাই করা সম্ভব হয়, যা আরো কার্যকরী এবং দ্রুত।
  • স্ট্রাকচারড ডেটা: টেক্সটের বদলে অবজেক্ট ব্যবহারের মাধ্যমে আপনি ডেটার স্ট্রাকচার এবং সম্পর্ক বজায় রাখেন।

Pipeline ব্যবহার করে বিভিন্ন উদাহরণ

উদাহরণ 1: Get-Process কমান্ডের আউটপুটকে ফিল্টার করা

Get-Process | Where-Object { $_.CPU -gt 100 }

এখানে Get-Process সমস্ত প্রসেসের তথ্য রিটার্ন করছে, এবং Where-Object কমান্ড শুধুমাত্র তাদের প্রসেসগুলিকে ফিরিয়ে দিচ্ছে যাদের CPU ব্যবহারের পরিমাণ 100 এর বেশি।

উদাহরণ 2: Get-Service থেকে নির্দিষ্ট পরিষেবাগুলি নির্বাচন করা

Get-Service | Where-Object { $_.Status -eq 'Running' } | Select-Object Name

এই উদাহরণে, Get-Service সমস্ত পরিষেবার তথ্য রিটার্ন করছে। এরপর Where-Object শুধু চলমান পরিষেবাগুলিকে ফিল্টার করছে এবং Select-Object শুধুমাত্র সেই পরিষেবাগুলির নাম দেখাচ্ছে।

উদাহরণ 3: ফাইলের আকার চেক করা

Get-ChildItem C:\Users | Where-Object { $_.Length -gt 100KB }

এখানে, Get-ChildItem ডিরেক্টরির মধ্যে থাকা ফাইলগুলোকে রিটার্ন করছে, এবং Where-Object শুধুমাত্র সেই ফাইলগুলোকে ফিল্টার করছে যেগুলোর আকার 100KB এর বেশি।

উদাহরণ 4: অবজেক্টের প্রপার্টি নির্বাচন করা

Get-Process | Select-Object Name, Id, CPU

এখানে, Get-Process কমান্ড সমস্ত প্রসেসের অবজেক্ট ফিরিয়ে দিচ্ছে, এবং Select-Object শুধুমাত্র Name, Id, এবং CPU প্রপার্টি প্রদর্শন করছে।


Conclusion

PowerShell-এর Command Pipeline এবং Object Passing একটি অত্যন্ত শক্তিশালী বৈশিষ্ট্য, যা স্ক্রিপ্ট লেখার এবং ডেটা প্রক্রিয়া করার ক্ষেত্রে অনেক সুবিধা দেয়। পাইপলাইনের মাধ্যমে একাধিক কমান্ডকে একত্রিত করে কার্যকরী স্ক্রিপ্ট তৈরি করা যায় এবং অবজেক্ট পাসিংয়ের মাধ্যমে ডেটাকে আরও কার্যকরভাবে এবং স্ট্রাকচারডভাবে পরিচালনা করা সম্ভব হয়।

Content added By
Promotion

Are you sure to start over?

Loading...